/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.ucase.casemain.service;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CasePartiesPersonInfoDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CasePartiesPersonInfoPageRequest;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CasePartiesPersonInfoQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CasePartyRecordAdjustPersonSaveDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CasePartiesPersonInfoVo;
import com.icinfo.framework.common.web.Result;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述: 案件当事人个人详细信息-TRJ case_parties_person_info 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年02月15日
 */
public interface ICasePartiesPersonInfoService extends BaseService {

    /**
     * 【V1.0.0】描述：保存案件当事人-个人信息
     *
     * @param saveDto {@link CasePartiesPersonInfoDto}
     * @return int 保存成功记录数
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    int saveCasePartiesPersonInfo(CasePartiesPersonInfoDto saveDto);

    /**
     * 【V1.0.0】描述：获取案件当事人-个人信息分页列表
     *
     * @param pageRequest {@link CasePartiesPersonInfoPageRequest}
     * @return {@link Result<List<CasePartiesPersonInfoVo>>} 案件当事人-个人信息分页列表
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    List<CasePartiesPersonInfoVo> getCasePartiesPersonInfoPageList(CasePartiesPersonInfoPageRequest pageRequest);

    /**
     * 【V1.0.0】描述：获取案件当事人-个人信息列表
     *
     * @param queryDto {@link CasePartiesPersonInfoQueryDto}
     * @return {@link List<CasePartiesPersonInfoVo>} 案件当事人-个人信息列表
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    List<CasePartiesPersonInfoVo> getCasePartiesPersonInfoList(CasePartiesPersonInfoQueryDto queryDto);

    /**
     * 【V1.0.0】描述：根据唯一标识查询案件当事人-个人信息
     *
     * @param id 唯一标识
     * @return {@link CasePartiesPersonInfoVo} 案件当事人-个人信息
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    CasePartiesPersonInfoVo getCasePartiesPersonInfo(String id);

    /**
     * 【V1.0.0】描述：删除案件当事人-个人信息
     *
     * @param id 主键id
     * @return {@link Result<String>} 删除结果
     * @author xiangyuyu
     * @date 2022-02-18 16:02
     */
    Result<String> removeCasePartiesPersonInfo(String id);


    /**
     * 【V1.0.0】描述：保存案件当事人-个人信息
     *
     * @param saveDto {@link CasePartiesPersonInfoDto}
     * @return int
     * @author shishengyao
     * @date 2023/03/25
     */
    String saveCasePartiesPersonInfoWithAdjust(CasePartyRecordAdjustPersonSaveDto saveDto);
}
